void reportbug(void){

	fclose(fpc);
	unlink(fcode);
	
	if(bug<7){
		printf("\n\n**line%d:%s**\n", (bug==3 ? line: eline), buggm[bug-1]);
		return;
	}
	printf("\n\n**bug at or near line %d: numbug=%d**%d**\n\n sigma=%4d\n alpha=%4d\n\n
			isymb=%4d\n top=%4d\n\n cli=%4d\n clj=%4d\n\n", eline, bug, sigma, alpha, isymb, top, cli, clj);
			
	if((j=top-9)<1){
		j=0;
	}
	printf(" stack[%4d-top]=", j);
	
	i=j;
	while(i<=top){
		printf("%5d",symbol[i]);
	    i++
	}
	ouch((int)NEWL);
	
	if(isymb<nsymb){
		if((nysymb<=(k=isymb+9)){
			k=nsymb-1;
		}
		printf(" string[%4d-%4d]=", isymb, k);
		
		i=isymb;
		while(i<=k){
			printf("%5d",symbol[i]);
			i++;
		}
		
		ouch((int)NEWL);
	}
	
	printf("\n\n maxtop=%d\n\n", maxtop); 

}
		
	